home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
pao
/
towns
/
paolib
/
realcall.asm
< prev
next >
Wrap
Assembly Source File
|
1991-10-18
|
2KB
|
82 lines
;==============================================================================
; << 386ASM V2.0 >> for FM TOWNS
;==============================================================================
.386p
PAGE 60,132
NAME RealCall
TITLE real call procedure
;==============================================================================
; リアルモードプログラムの呼出
;
; < High C からの呼出形式 >
; RealCall( Address ) ;
;
; < note > : TABS = 4
;
; < History >
; 1990.03.14 : CREATE
; 1991.04.13 : 清書
;
; ★ 注意
; 本プログラムを使用する時には、リンク時の最初にREALHEAD.OBJを指定して
; 下さい。
;
; Programmed by Y.Hirata
;==============================================================================
;
INCLUDE hc.inc ;
;
CGROUP GROUP pmcode, CODE ;
DGROUP GROUP rmdata, pmdata, DATA ;
;
;--------------------------------------------
public RealCall ;
;--------------------------------------------
;
pmcode SEGMENT ;
ASSUME cs:CGROUP ;
;
;********************************************
; REAL CALL UTILITY
;********************************************
ALIGN 4 ; dword boundary
RealCall PROC NEAR ;
push ebp ;
mov ebp,esp ; スタックフレーム形成
;
push esi ;
push edi ;
push ebx ;
push ecx ;
push es ;
mov bx,8[ebp] ;
push bx ; 呼び出すリアルモードプロシジャのアドレス
;
push ds ;
pop es ; es = ds
xor ebx,ebx ;
mov ecx,OFFSET _realend ;
mov ax,0250fh ; ネイティブ->リアル の アドレス変換
int INT_DOS ;
;
mov ebx,ecx ; セグメント
pop bx ; オフセット
mov ecx,0 ;
mov ax,0250eh ; リアルモードプロシジャの呼出
int INT_DOS ;
;
pop es ;
pop ecx ;
pop ebx ;
pop edi ;
pop esi ;
;
pop ebp ; スタックフレームの開放
ret ;
RealCall ENDP ;
;
pmcode ENDS ;
;
END